export type ComponentType =
  | 'Input'
  | 'InputNumber'
  | 'Select'
  | 'ApiSelect'
  | 'AutoComplete'
  | 'ApiTreeSelect'
  | 'Checkbox'
  | 'Switch'
  | 'DatePicker'
  | 'TimePicker'
  | 'RadioGroup'
  | 'RadioButtonGroup'
  | 'ApiRadioGroup'
  | 'Icon'
  | 'IconPicker'
  | 'Slider';

export interface EditColumn {
  label: string;
  dataIndex: string;
  component?: ComponentType;
  slot?: string;
  class?: string;
  defaultValue?: any;
  parentField?: string;
  required?: boolean;
  componentProps?:
    | ((opt: { record: Recordable; column: EditColumn; index: number }) => Recordable)
    | Recordable;
  format?: (text: string, record: Recordable, index: number) => string | number;
}
